package pallettown;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.ThreadLocalRandom;
/**
* Created by Paris on 23/01/2017.
*/
class RandomDetails {
private static final String[] INITIAL = new String[] {
"fr","ch","gr","cl","bl","tr","sl","sh","sm",
"br","st","cr","gl","fl","sp","pr","sk","b",
"d","g","f","h","k","j","m","l","n","dr","p",
"s","r","t","w","v","y","str","z","sw","pl","sn"};
private static final String[] FINAL = new String[]{
"ch", "ft", "nd", "sh", "nk", "pt", "st",
"ng", "ct", "b", "d", "g", "f", "ss", "h",
"k", "sp", "m", "l", "n", "sk", "p", "r",
"t", "w", "v", "y", "z", "nt", "mp"};
private static final String[] VOWELS = new String[]{
"a","e","i","o","u"
};
private static final char[] SYMBOLS = new char[]{
'#','!','@','$','%','&','*','(',')'
};
static String randomBirthday() {
long minDay = LocalDate.of(1950, 1, 1).toEpochDay();
long maxDay = LocalDate.of(2002, 12, 31).toEpochDay();
long randomDay = ThreadLocalRandom.current().nextLong(minDay, maxDay);
LocalDate randomDate = LocalDate.ofEpochDay(randomDay);
DateTimeFormatter yearlyFormat = DateTimeFormatter
.ofPattern("yyyy-MM-dd");
return randomDate.format(yearlyFormat);
}
static String randomUsername() {
return randomWords(3);
}
static String randomPassword() {
String base = randomWords(3);
char[] baseArr = base.toCharArray();
int capitalIndex = randBetween(0,base.length()-1);
baseArr[capitalIndex] = Character.toUpperCase(baseArr[capitalIndex]);
int numIndex = capitalIndex;
while(numIndex == capitalIndex) {
numIndex = randBetween(0, base.length() - 1);
}
baseArr[numIndex] = Character.forDigit(randBetween(0,9),10);
int symbolIndex = numIndex;
while(symbolIndex == numIndex || symbolIndex == capitalIndex) {
symbolIndex = randBetween(0, base.length() - 1);
}
baseArr[symbolIndex] = SYMBOLS[randBetween(0,SYMBOLS.length-1)];
return new String(baseArr);
}
private static String randomWords(int words) {
String randomWords = "";
for (int i = 0; i < words; i++) {
randomWords += randomWord();
}
return randomWords;
}
private static String randomWord(){
String init = INITIAL[randBetween(0,INITIAL.length-1)];
String vowel = VOWELS[randBetween(0,VOWELS.length-1)];
String fin = FINAL[randBetween(0,FINAL.length-1)];
return init+vowel+fin;
}
private static int randBetween(int start, int end) {
return start + (int)Math.round(Math.random() * (end - start));
}
}